[c++]的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 05:16:57
#include <iostream>
using namespace std;
int main(void)
{
int arr[9];
cin>>arr;
cout<<arr;
return 0;

}

错在哪?编译不过去哦。

要是把arr后面的去掉声明称一个int变量就可以过去了,为什么呢?
btx_1981 一点恍然大悟,但还有个疑问:要是我把int arr[9] 改成 char arr[9] 却能编译过去,既然arr是个常量,为何可以正常输入字符呢?

因为你的arr[9]是一个数组,包含了9个int(整形)数据,
你要把值赋给这个数组,应该是一个个的对应赋值
将 cin>>arr 改为下面的:
for(int i=0;i<9;i++)
cin>>arr[i];
这样就从arr[0]到arr[9]都赋值了
不过同样的,输出的时候也得改了
for(i=0;i<9;i++)
cout<<arr[i];

int arr[9];//定义的是一个数组
cin>>arr;//错误,因为arr存储的是数组的首地址,在程序运行期间,arr是一个常量(定值),不能改变值

cin>>*arr;//就没有问题,给数组第一个元素赋值

输入输出只能对数组中的某个元素,不能多整个数组!

#include <iostream>
using namespace std;
int main(void)
{
char arr[9]; //把int改成char就行了,
cin>>arr;
cout<<arr;
return 0;

}
因为你声明的是int类型的一个数组,这样你输入的时候,你要一个一个的输入到arr[]中,而不能直接引用它的函数名,
对于字符串,你才可以这样操作。不明白可以发信息问我